From a67723b05d4350eaa6b15d086f182e6e45933d7e Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Thu, 7 Mar 2002 15:39:31 +0000 Subject: [PATCH] Fix problem where there were two copies of the "do an arrow step" code, Thu Mar 7 10:31:57 2002 Owen Taylor * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where there were two copies of the "do an arrow step" code, one correct for rotated notebooks, one not. (#73855, Thomas Leonard.) --- ChangeLog | 7 ++++++ ChangeLog.pre-2-0 | 7 ++++++ ChangeLog.pre-2-10 | 7 ++++++ ChangeLog.pre-2-2 | 7 ++++++ ChangeLog.pre-2-4 | 7 ++++++ ChangeLog.pre-2-6 | 7 ++++++ ChangeLog.pre-2-8 | 7 ++++++ gtk/gtknotebook.c | 53 ++++++++++++++++++++++------------------------ 8 files changed, 74 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index eff277e92a..61273af853 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index eff277e92a..61273af853 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Thu Mar 7 10:31:57 2002 Owen Taylor + + * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where + there were two copies of the "do an arrow step" code, + one correct for rotated notebooks, one not. (#73855, + Thomas Leonard.) + Wed Mar 6 23:20:51 2002 Jonathan Blandford and Kristian Rietveld diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 8eb626ad88..e5361afc35 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -1449,6 +1449,27 @@ gtk_notebook_get_arrow (GtkNotebook *notebook, return 0; } +static void +gtk_notebook_do_arrow (GtkNotebook *notebook, + GtkArrowType arrow) +{ + GtkWidget *widget = GTK_WIDGET (notebook); + GtkDirectionType dir; + + if (!notebook->focus_tab || + gtk_notebook_search_page (notebook, notebook->focus_tab, + arrow == GTK_ARROW_LEFT ? STEP_PREV : STEP_NEXT, + TRUE)) + { + if (notebook->tab_pos == GTK_POS_LEFT || + notebook->tab_pos == GTK_POS_RIGHT) + dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_UP : GTK_DIR_DOWN; + else + dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_LEFT : GTK_DIR_RIGHT; + gtk_widget_child_focus (widget, dir); + } +} + static gboolean gtk_notebook_arrow_button_press (GtkNotebook *notebook, GtkArrowType arrow, @@ -1464,19 +1485,7 @@ gtk_notebook_arrow_button_press (GtkNotebook *notebook, if (event->button == 1) { - GtkDirectionType dir; - if (!notebook->focus_tab || - gtk_notebook_search_page (notebook, notebook->focus_tab, - arrow == GTK_ARROW_LEFT ? STEP_PREV : STEP_NEXT, - TRUE)) - { - if (notebook->tab_pos == GTK_POS_LEFT || - notebook->tab_pos == GTK_POS_RIGHT) - dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_UP : GTK_DIR_DOWN; - else - dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_LEFT : GTK_DIR_RIGHT; - gtk_widget_child_focus (widget, dir); - } + gtk_notebook_do_arrow (notebook, arrow); if (!notebook->timer) { @@ -2293,23 +2302,11 @@ gtk_notebook_timer (GtkNotebook *notebook) gboolean retval = FALSE; GDK_THREADS_ENTER (); - + if (notebook->timer) { - if (notebook->click_child == GTK_ARROW_LEFT) - { - if (!notebook->focus_tab || - gtk_notebook_search_page (notebook, notebook->focus_tab, - STEP_PREV, TRUE)) - gtk_widget_child_focus (GTK_WIDGET (notebook), GTK_DIR_LEFT); - } - else if (notebook->click_child == GTK_ARROW_RIGHT) - { - if (!notebook->focus_tab || - gtk_notebook_search_page (notebook, notebook->focus_tab, - STEP_NEXT, TRUE)) - gtk_widget_child_focus (GTK_WIDGET (notebook), GTK_DIR_RIGHT); - } + gtk_notebook_do_arrow (notebook, notebook->click_child); + if (notebook->need_timer) { notebook->need_timer = FALSE; -- 2.30.2